//package cn.com.gc.core.lock;
//
//
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.stereotype.Component;
//
//import java.util.Map;
//import java.util.concurrent.ConcurrentHashMap;
//import java.util.concurrent.locks.Lock;
//import java.util.concurrent.locks.ReentrantLock;
//
///**
// * 
// * <pre>
// *  3秒内独占锁
// * </pre>
// * @author suven  pf_qq@163.com
// * @version 1.00.00
// * <pre>
// * 
// * </pre>
// */
//@Component
//public class ThreadLocker implements Locker<Object>{
//	private final static Logger logger = LoggerFactory.getLogger(ThreadLocker.class);
//
//	private Map<String,Long> map = new ConcurrentHashMap<>();
//    private Lock lock = new ReentrantLock(); // 注意这个地方：lock 被声明为成员变量
//    
//    
//    //如果对应参数锁不存在返回true, 对应参数存在，竞争锁失败，返回false
//	@Override
//	public boolean obtainLock(String lockKey){
//	    try {
//            lock.lock();
//            if(map.containsKey(lockKey)){
//                logger.warn("并发锁 ThreadLocker obtainLock 。。。【{}】",lockKey);
//                return true;
//            }
//            map.put(lockKey,System.currentTimeMillis());
//        }catch(Exception e){
//            logger.warn("并发锁 ThreadLocker Exception 。。。【{}】",e.getMessage());
//        }finally {
//            lock.unlock();
//        }
//        return false;
//       
//    }
//
//   
//	/**
//	 * 此方法默认释放销;
//	 * @param lockKey
//	 * @return
//	 */
//	@Override
//	public boolean releaseLock(String lockKey){
//        if(map.containsKey(lockKey)){
//            map.remove(lockKey);
//            return true;
//        }
//        return false;
//        
//	}
//
//	@Override
//	public void lock(Object data) {
//       
//	}
//
//	@Override
//	public void unlock(Object data) {
//        
//	}
//	
//	
//}
